<?php session_start();
    include_once ("../bussines/ProductoAlmacenBR.php");
    include_once ("../entity/ProductoAlmacen.php");
    
    if(file_exists("../entity/Constantes.php")){
        include_once ("../entity/Constantes.php");
    }
    
    if(isset($_POST["opc"])){
        
        $codigo = $_POST["codigo"];
        $producto = $_POST["producto"];
        $cod_almacen = $_POST["cod_almacen"];
        $cod_producto = $_POST["cod_producto"];
        $cod_proveedor = $_POST["cod_proveedor"];
        $stock_max = $_POST["stock_max"];
        $stock_min = $_POST["stock_min"];
        $plazo_abastecimiento = $_POST["plazo_abastecimiento"];
        $estado_max = $_POST["estado_max"];
        
        
        $usuario_crea = $_SESSION[Constantes::K_SESSION_CODIGO_USUARIO];
        $usuario_modi = $_SESSION[Constantes::K_SESSION_CODIGO_USUARIO];
        
        if($_POST["opc"]=="bus"){
            
            $page = $_POST['page'];
            $limit = $_POST['rows'];
            $sidx = $_POST['sidx'];
            $sord = $_POST['sord'];
            
            if (!$sidx){
               $sidx = 1;
            }
            echo mostrarProductoAlmacenGrilla($codigo, $producto,$cod_almacen, $page, $limit, $sidx, $sord);
        }elseif ($_POST["opc"]=="ins") {
            echo insertar($cod_producto,$cod_almacen,$stock_max,$stock_min,$usuario_crea,$cod_proveedor,$plazo_abastecimiento,$estado_max);
        }elseif($_POST["opc"]=="del"){
            echo eliminar($codigo);
        }elseif($_POST["opc"]=="vdel"){
            echo validarEliminar($codigo);
        }elseif($_POST["opc"]=="vins"){
            echo validarGrabar($cod_producto);
        }elseif($_POST["opc"]=="con"){
            echo contarStockMinimo();
        }elseif($_POST["opc"]=="bus1"){
            $page = $_POST['page'];
            $limit = $_POST['rows'];
            $sidx = $_POST['sidx'];
            $sord = $_POST['sord'];
            
            if (!$sidx){
               $sidx = 1;
            }
            echo mostrarProductoXStockMin( $page, $limit, $sidx, $sord);
        }
    }
    
    function contarStockMinimo(){
        $count = new ProductoAlmacenBR();
        $result = $count->contarStockMinimo();
        
        return $result;
    }
    
    function validarGrabar($cod_producto){
        $vins = new ProductoAlmacenBR();
        $result = $vins->validarGrabar($codigo);
        
        if($result>0){
            $msj = ConstantesMensajes::K_MENSAJE_VALIDAR_PRODUCTOALMACEN_GRABAR;
        }else{
            $msj = '0';
        }
        return $msj;
    }
    
    function validarEliminar($codigo){
        $vdel = new ProductoAlmacenBR();
        
        $result = $vdel->validarEliminar($codigo);
        
        if($result > 0){
            $msj = ConstantesMensajes::K_MENSAJE_VALIDAR_PRODALMCEN_PRODMOVIMIENTO_EXISTE;
        }else{
            $msj='0';
        }
        return $msj;
    }
    
    function eliminar($codigo){
        $del = new ProductoAlmacenBR();
        $entity = new ProductoAlmacen();
        $entity->codigo = $codigo;
        
        $result = $del->eliminar($entity);
        
        if($result == 1){
            $msj = ConstantesMensajes::K_MENSAJE_DELETE_OK;
        }else{
            $msj = ConstantesMensajes::K_MENSAJE_DELETE_NOOK;
        }
        return $msj;
    }
    
    function insertar($cod_producto,$cod_almacen,$stock_max,$stock_min,$usuario_crea,$cod_proveedor,$plazo_abastecimiento,$estado_max){
        $ins = new ProductoAlmacenBR();
        $entity = new ProductoAlmacen();
        $entity->cod_producto = $cod_producto;
        $entity->cod_almacen = $cod_almacen;
        $entity->cod_proveedor = $cod_proveedor;
        $entity->stock_max = $stock_max;
        $entity->stock_min = $stock_min;
        $entity->stock_actual = 0;
        $entity->plazo_abastecimiento = $plazo_abastecimiento;
        $entity->estado_max = $estado_max == true ? 1 : 0;
        $entity->usuario_crea = $usuario_crea;
        
        $result = $ins->insertar($entity);
        
        if($result == 1){
            $msj = ConstantesMensajes::K_MENSAJE_INSERT_OK;
        }elseif($result == 2){
            $msj = ConstantesMensajes::K_MENSAJE_INSERT_NOOK_EX;
        }else{
            $msj = ConstantesMensajes::K_MENSAJE_INSERT_NOOK;
        }
        return $msj;
    }
    function mostrarProductoXStockMin( $page, $limit, $sidx, $sord){
        $bus = new ProductoAlmacenBR();
        
        $count = $bus->numeroRegistro1();
        if ($count > 0) {
            $total_pages = ceil($count / $limit);
        } else {
            $total_pages = 0;
        }
        if ($page > $total_pages){
            $page = $total_pages;
        }
        $start = $limit * $page - $limit;
        $responce->page = $page;
        $responce->total = $total_pages;
        $responce->records = $count;
        $i = 0;
        
        $productoAlmacen = $bus->BuscarSearch1($start, $limit, $sidx, $sord);
        
        if(sizeof($productoAlmacen)){
            foreach ($productoAlmacen as $fila){
                $responce->rows[$i]['id'] = $fila->codigo;
                $responce->rows[$i]['cell'] = array($fila->codigo,$fila->cod_producto,$fila->producto,$fila->cod_almacen, $fila->almacen,$fila->stock_actual,$fila->stock_max,$fila->stock_min,$fila->cod_proveedor,$fila->proveedor);
                $i++;
            }
        }
        return json_encode($responce);
    }
    
    function mostrarProductoAlmacenGrilla($codigo, $producto,$cod_almacen, $page, $limit, $sidx, $sord){
        $bus = new ProductoAlmacenBR();
        $entity = new ProductoAlmacen();
        $entity->codigo = $codigo;
        $entity->producto = $producto;
        $entity->cod_almacen = $cod_almacen;
        
        $count = $bus->numeroRegistro($codigo, $producto,$cod_almacen);
        
        if ($count > 0) {
            $total_pages = ceil($count / $limit);
        } else {
            $total_pages = 0;
        }
        if ($page > $total_pages){
            $page = $total_pages;
        }
        $start = $limit * $page - $limit;
        $responce->page = $page;
        $responce->total = $total_pages;
        $responce->records = $count;
        $i = 0;
        
        $productoAlmacen = $bus->BuscarSearch($entity, $start, $limit, $sidx, $sord);
        
        if(sizeof($productoAlmacen)){
            foreach ($productoAlmacen as $fila){
                $responce->rows[$i]['id'] = $fila->codigo;
                $responce->rows[$i]['cell'] = array($fila->codigo,$fila->cod_producto,$fila->producto,$fila->cod_almacen, $fila->almacen,$fila->stock_actual,$fila->stock_max,$fila->stock_min,$fila->cod_proveedor,$fila->proveedor,$fila->fecha_crea);
                $i++;
            }
        }
        
        return json_encode($responce);
    }
?>